package com.t11;

import typeinfo.pets.Pet;
import typeinfo.pets.Pets;

import java.util.List;
import java.util.ListIterator;

/**
 * Created by xuyiwei on 2018/7/22.
 */
public class ListIteration {
    public static void main(String[] args) {
        List<Pet> pets = Pets.arrayList(8);
        ListIterator<Pet> it = pets.listIterator();
        while (it.hasNext()){
            //迭代器在对象和对象之间，也就是相当于迭代器概念的前一个就是我们取到当前的对象
            //就是迭代器不是从0开始的  it.next()才是第一个    然后前一个对象下标是0  后一个是1
            //其实正在取的那个就是0
            System.out.println(it.next()+ ", "+it.nextIndex()+", "+it.previousIndex());
            /**
             * Rat, 1, 0
             Manx, 2, 1
             Cymric, 3, 2
             Mutt, 4, 3
             Pug, 5, 4
             Cymric, 6, 5
             Pug, 7, 6
             Manx, 8, 7

             */
        }
        System.out.println();
        System.out.println(pets);
        while(it.hasPrevious()){
            System.out.println(it.previous().id()+" ");
        }
        System.out.println();
        System.out.println(pets);
        it = pets.listIterator(3);
        //直接光标移到第三个
        while (it.hasNext()){
            it.next();
            //从第3个开始替换相对应的对象
            it.set(Pets.randomPet());
        }
        System.out.println(pets);
    }
}
